from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

iris = load_iris(as_frame=True)
x = iris.data
y = iris.target

pca = PCA(n_components = 2)
x_pca = pca.fit_transform(x)

# 可视化
plt.figure(figsize=(8, 6))
plt.scatter(x_pca[:, 0], x_pca[:, 1], c=y, cmap='viridis')
plt.xlabel('PC1')
plt.ylabel('PC2')
plt.title('PCA of Iris Dataset')
plt.colorbar()
# plt.show()
print(pca.explained_variance_ratio_)  # 每个主成分解释的数据比例
print(pca.explained_variance_)        # 每个主成分的特征值